package com.ruoyi.cbs.contract.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 承包商保险对象 cbs_contractor_insurance
 * 
 * @author ruoyi
 * @date 2025-10-31
 */
public class ContractorInsurance extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;

    /** 承包商ID */
    @Excel(name = "承包商ID")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long contractorId;

    /** 承包商名称 */
    @Excel(name = "承包商名称")
    private String contractorName;

    /** 保险名称 */
    @Excel(name = "保险名称")
    private String name;

    /** 保险起始 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "保险起始", width = 30, dateFormat = "yyyy-MM-dd")
    private Date start;

    /** 保险截止 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "保险截止", width = 30, dateFormat = "yyyy-MM-dd")
    private Date end;

    /** 保险人数, 仅针对人身类保险（如施工人员意外险）必填，财产类保险（如工程一切险）可设为 NULL */
    @Excel(name = "保险人数, 仅针对人身类保险", readConverterExp = "如=施工人员意外险")
    private Integer insuredCount;

    /** 保险类型, 强制保险,自愿保险 */
    @Excel(name = "保险类型, 强制保险,自愿保险")
    private String insuranceType;

    /** 保险单号 */
    @Excel(name = "保险单号")
    private String insuranceNo;

    /** 承保保险公司 */
    @Excel(name = "承保保险公司")
    private String insurer;

    /** 附件存储路径 */
    @Excel(name = "附件存储路径")
    private String attachment;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setContractorId(Long contractorId) 
    {
        this.contractorId = contractorId;
    }

    public Long getContractorId() 
    {
        return contractorId;
    }

    public void setContractorName(String contractorName) 
    {
        this.contractorName = contractorName;
    }

    public String getContractorName() 
    {
        return contractorName;
    }

    public void setName(String name) 
    {
        this.name = name;
    }

    public String getName() 
    {
        return name;
    }

    public void setStart(Date start) 
    {
        this.start = start;
    }

    public Date getStart() 
    {
        return start;
    }

    public void setEnd(Date end) 
    {
        this.end = end;
    }

    public Date getEnd() 
    {
        return end;
    }

    public void setInsuredCount(Integer insuredCount)
    {
        this.insuredCount = insuredCount;
    }

    public Integer getInsuredCount()
    {
        return insuredCount;
    }

    public void setInsuranceType(String insuranceType) 
    {
        this.insuranceType = insuranceType;
    }

    public String getInsuranceType() 
    {
        return insuranceType;
    }

    public void setInsuranceNo(String insuranceNo) 
    {
        this.insuranceNo = insuranceNo;
    }

    public String getInsuranceNo() 
    {
        return insuranceNo;
    }

    public void setInsurer(String insurer) 
    {
        this.insurer = insurer;
    }

    public String getInsurer() 
    {
        return insurer;
    }

    public void setAttachment(String attachment) 
    {
        this.attachment = attachment;
    }

    public String getAttachment() 
    {
        return attachment;
    }

    public void setDelFlag(String delFlag) 
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag() 
    {
        return delFlag;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("contractorId", getContractorId())
            .append("contractorName", getContractorName())
            .append("name", getName())
            .append("start", getStart())
            .append("end", getEnd())
            .append("insuredCount", getInsuredCount())
            .append("insuranceType", getInsuranceType())
            .append("insuranceNo", getInsuranceNo())
            .append("insurer", getInsurer())
            .append("attachment", getAttachment())
            .append("delFlag", getDelFlag())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
